package com.huashi.dealer.modular.business.verify.service;

import com.huashi.dealer.modular.business.verify.param.VerifyRequestParam;
import com.huashi.dealer.modular.business.verify.param.VerifyResponseParam;

/**
 * API验证码Service接口
 *
 * @author 谭陈强
 * @since 2025-07-30
 */
public interface VerifyService {

    /**
     * 获取验证码
     *
     * @param token 用户令牌
     * @param type 验证码类型
     * @return 验证码信息
     */
    VerifyResponseParam getVerifyCode(String token, String type);

    /**
     * 验证验证码
     *
     * @param requestParam 请求参数
     */
    void checkVerifyCode(VerifyRequestParam requestParam);

    /**
     * 发送短信验证码
     *
     * @param requestParam 请求参数
     */
    void sendSmsCode(VerifyRequestParam requestParam);

    /**
     * 验证短信验证码
     *
     * @param requestParam 请求参数
     */
    void checkSmsCode(VerifyRequestParam requestParam);

    /**
     * 发送邮箱验证码
     *
     * @param requestParam 请求参数
     */
    void sendEmailCode(VerifyRequestParam requestParam);

    /**
     * 验证邮箱验证码
     *
     * @param requestParam 请求参数
     */
    void checkEmailCode(VerifyRequestParam requestParam);

    /**
     * 获取图形验证码
     *
     * @param token 用户令牌
     * @param type 验证码类型
     * @return 图形验证码信息
     */
    VerifyResponseParam getImageCode(String token, String type);

    /**
     * 验证图形验证码
     *
     * @param requestParam 请求参数
     */
    void checkImageCode(VerifyRequestParam requestParam);
} 